wiki
Benvenuto
Guest
, sei in:
<root>
Manual
Manuale IT
Tech
•
Login
• Welcome
Guest
, you are in:
<root>
Manual
Manuale IT
Tech
•
Login
ScrewTurn Wiki
Navigazione (Tech)
¶
Pagina Principale
Pagina Principale (root)
Pagina Casuale
Nuova Pagina
Tutte le Pagine
Categorie
Percorsi di Navigazione
Amministrazione
Gestione File
Registrati
Ricerca wiki
»
Navigation (Tech)
¶
Main Page
Main Page (root)
Random Page
Create a new Page
All Pages
Categories
Navigation Paths
Administration
File Management
Create Account
Search the wiki
»
Back
Creare Gadged nella barra laterale
Modified on 2009/09/23 16:45
by
roberto
Categorized as
Uncategorized
Disponibile dalla versione 6.8 di Tustena CRM La barra laterale di Tustena, può essere personalizzata con l'aggiunta di nuovi gadget e funzionalità Per creare un nuovo ''Gadget'', per prima cosa bisogna aggiungere un file .ascx (il nome è indifferente) nella cartella ''SideBar''. Una volta creato il file .cs, bisogna far ereditare la classe da {{SideBarControl}} e dall'interfaccia {{ISideBar}}. Successivamente nel costruttore, bisogna impostare un ID e un Titolo (this.ID e this.Title) al controllo. {s:draft} Allego un esempio di codebehind per semplificare le cose: In questo esempio viene creata una semplice Chat per lo scambio di messaggi tra gli Utenti di Tustena. I messaggi vengono salvati in Application, quindi non avranno una vera e propria persistenza, ma saranno rimossi al riciclo dell'applicazione. Inoltre in questo esempio c'è un approccio su come utilizzare il motore Ajaxed per eseguire un PostBack parziale su dati parziali della pagina. @@ using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Digita.Tustena.WebControls; using Digita; public partial class SideBar_MyGadget : SideBarControl, ISideBar { public SideBar_MyGadget() { this.ID = "MyGadget"; this.Title = "La mia Chat Interna"; if (HttpContext.Current.Application["Chat_Box"] == null) { HttpContext.Current.Application.Add("Chat_Box", string.Empty); } } protected void Page_Load(object sender, EventArgs e) { ((AjaxedPage)Page).GetAjaxed(PostMessage, "MessageList", null, AjaxedPage.AjaxedType.PostbackEvent); } protected override void OnInit(EventArgs e) { base.OnInit(e); PostMessage.Click += new EventHandler(PostMessage_Click); } void PostMessage_Click(object sender, EventArgs e) { ((AjaxedPage)Page).RemoveAllAjaxedControl(); ((AjaxedPage)Page).GetAjaxed(MessageList, "MessageList", null, AjaxedPage.AjaxedType.Inner); ((AjaxedPage)Page).GetAjaxed(Message, null, null, AjaxedPage.AjaxedType.Inner); ((AjaxedPage)Page).GetAjaxed(PostMessage, null, null, AjaxedPage.AjaxedType.Inner); if (!string.IsNullOrEmpty(Message.Text)) { string msg = string.Format("<span style=\"color:Red\">{1} scrive:</span>{0}{2}{0}{3}", Environment.NewLine, UC.UserRealName, Message.Text, Application["Chat_Box"]); Message.Text = string.Empty; if (msg.Length > 1000) { msg=msg.Substring(0, msg.LastIndexOf("<span ")); } Application["Chat_Box"] = msg; } } protected override void OnPreRender(EventArgs e) { MessageList.Text = Application["Chat_Box"].ToString().Replace(Environment.NewLine, "<br/>"); base.OnPreRender(e); } protected override void Render(HtmlTextWriter writer) { base.Render(writer); } } @@ @@ <%@ Control Language="C#" AutoEventWireup="true" CodeFile="MyGadget.ascx.cs" Inherits="SideBar_MyGadget" %> <twc:jscontrolid runat="server" Identifier="Chat"></twc:jscontrolid> <div style=" color:Black; padding:2px; margin:2px; width:100%; height:100px; overflow-y: scroll; background-color:White; margin:2px;" id="MessageList"> <asp:Literal ID="MessageList" runat="server"></asp:Literal> </div> <div> <asp:TextBox runat="server" ID="Message" CssClass="BoxDesign"></asp:TextBox> </div> <div class="Tbutton" style="text-align:right"> <twc:LocTustenaButton runat="server" ID="PostMessage" Logo="plus" Text="Invia"></twc:LocTustenaButton> </div> <script type="text/javascript"> function poolChat() { eval($('#' + jsControlIdChat + 'PostMessage').attr('href')); chatTimeout = setTimeout('poolChat()', 5000); } AJAXED.scrollToInjection = false; var chatTimeout=setTimeout('poolChat()', 5000); </script> @@
Meta Keywords:
Meta Description:
Change Comment: